XSLT Saxon
Общее описание
Блок XSLT Saxon предназначен для трансформации XML‑сообщений с использованием процессора Saxon — высокопроизводительного движка для обработки XSLT (в т. ч. версий 2.0 и 3.0) и XQuery. XSLT‑шаблоны загружаются в поле Загрузить схему или темплейт. Загруженный документ сохраняется в менеджере файлов и доступен в пользовательском интерфейсе ESB в разделе Файлы и соединения.
Механизм работает следующим образом: входящее XML‑сообщение обрабатывается процессором Saxon согласно правилам, заданным в XSLT‑файле, загруженном в менеджер файлов. Формирует результат в форматах: XML, JSON, CSV, HTML, простой текст и другие.
Настройка блока
В данном разделе описаны параметры блока XSLT, которые необходимо заполнить при его настройке.
Базовые параметры
| Название в UI | Название атрибута | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Загрузить схему или темплейт | В данном поле вы можете выбрать или загрузить схему или шаблон, выбрав его из списка загруженных файлов или в файловом навигаторе. | Файл | ||
| Allow StAX | AllowStAX | Параметр определяет, разрешено ли использовать StAX (Streaming API for XML) в качестве реализации интерфейса javax.xml.transform.Source при выполнении XSLT‑преобразований. | True | Логическое значение |
| Allow Template From Header | AllowTemplateFromHeader | Определяет разрешать ли использовать шаблон ресурса из заголовка или нет (по умолчанию false). Включение этого параметра позволяет указывать динамические шаблоны через заголовок сообщения. Однако это может рассматриваться как потенциальная уязвимость системы безопасности, если заголовок исходит от злоумышленника, поэтому используйте его с осторожностью. | False | Логическое значение |
| Content Cache | ContentCache | Определяет кэшировать ли содержимое ресурса (файл таблицы стилей) при его загрузке на старте. Если установлено значение false, файл таблицы стилей будет перезагружаться при обработке каждого сообщения. | True | Логическое значение |
| Delete Output File | DeleteOutputFile | Если у вас значение параметра Output установлено file, то этот параметр определяет, следует ли удалять выходной файл после завершения обработки. Например, если выходной файл является временным, его лучше удалять после использования. | False | Логическое значение |
| Fail On Null Body | FailOnNullBody | Определяет следует ли генерировать исключение, если тело входного сообщения пустое (NULL). | True | Логическое значение |
| Output | Output | Определяет тип вывода.
Первые три значения параметра (string, bytes, DOM) задают сохранение в памяти. Если выбрано значение file, то файл передается непосредственно в java.io.File. Для файла вы должны указать имя файла в заголовке IN с ключом | Список | |
| Transformer Cache Size | TransformerCacheSize | Количество объектов javax.xml.transform.Transformer, которые кэшируются для повторного использования, что позволяет избежать вызовов Template.newTransformer(). | Целочисленное значение |
Расширенные параметры
| Название в UI | Название атрибута | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Lazy Start Producer | LazyStartProducer | Определяет должен ли отправитель стартовать в отложенном режиме, т.е. при получении первого сообщения. Для выявления ошибок и отладки при активации потока, выставьте значение в False.
| False | Логическое значение |
| Entity Resolver | EntityResolver | Задает пользовательский обработчик, который указывает XSLT блоку, где найти дополнительные ресурсы (например, DTD, внешние схемы) для трансформации XML с использованием движка SAXSource. | Строка | |
| Error Listener | ErorListener | Позволяет настроить пользовательский обработчик ошибок, перехватывающий предупреждения и ошибки во время XSLT-трансформации. Примечание: При указании пользовательского обработчика стандартный обработчик перестает действовать. Используйте эту опцию с осторожностью. | Строка | |
| Result Handler Factory | ResultHandlerFactory | Позволяет использовать пользовательский интерфейс для обработки результата трансформации. | Строка | |
| Saxon Configuration | SaxonConfiguration | Позволяет задать пользовательскую конфигурацию процессора Saxon для расширенной настройки XSLT‑преобразований. | Строка | |
| Saxon Extension Functions | SaxonExtensionFunctions | Позволяет использовать пользовательские функции расширения Saxon (net.sf.saxon.lib.ExtensionFunctionDefinition) в XSLT‑преобразованиях. | Строка | |
| Secure Processing | SecureProcessing | Включает безопасную обработку XML согласно javax.xml.XMLConstants (защита от XXE и других атак). | True | Логическое значение |
| Transformer Factory | TransformerFactory | Позволяет задать пользовательскую фабрику XSLT‑трансформеров для расширенной настройки процесса трансформации XML. | Строка | |
| Transformer Factory Class | TransformerFactoryClass | Задает полное и однозначное имя пользовательского класса для XSLT трансформации. | Строка | |
| Transformer Factory Configuration Strategy | TransformerFactoryConfigurationStrategy | Задает стратегию настройки, применяемую к только что созданным экземплярам классов трансформации. | Строка | |
| Uri Resolver | UriResolver | Задает пользовательский обработчик URI. | Строка | |
| Xslt Message Logger | XsltMessageLogger | Получатель сообщений, сгенерированных во время преобразований XSLT. | Строка | |
| Disabled | Disabled | Определяет будет ли блок отключен в потоке. В активированном потоке функциональность блока не будет отрабатываться. | False | Логическое значение |